package com.sweet.page;

/**
 * 分页工具
 *
 * @author limi
 * @date 2020-11-05 16:29
 */
public class PageUtil {
    /**
     * 合理化分页页数，范围>=0
     *
     * @param total    数据总数
     * @param pageSize 每页显示量
     * @return
     */
    public static int getPageCount(long total, int pageSize) {
        // 数据总数小于1，则页数为0
        if (total < 1) {
            return 0;
        }

        // 每页显示量异常，则页数为1
        if (pageSize < 1 || total <= pageSize) {
            return 1;
        }

        // 定义分页页数，使用Math.ceil代替
        // int pageCount = (int) (total % pageSize == 0 ? total / pageSize :
        // (total / pageSize) + 1);
        int pageCount = (int) Math.ceil((double) total / (double) pageSize);

        // 防止删除最后一条时报错，则添加判断
        return pageCount <= 0 ? 1 : pageCount;
    }

    /**
     * 定义数据库数据起始游标
     *
     * @param pageSize
     * @param pageNumber
     * @return
     */
    public static int getStartCursor(int pageSize, int pageNumber) {
        return pageSize * (pageNumber - 1);
    }

    /**
     * 定义数据库数据结束游标
     * 有bug
     *
     * @param pageSize
     * @return
     */
    public static int getEndCursor(int pageSize) {
        return pageSize;
    }
}
